package com.atguigu.spring5.aopanno;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Aspect
@Component
@Order(1)
public class PersonProxy {

    // 抽取相同的切入点
    @Pointcut(value = "execution(* com.atguigu.spring5.aopanno.User.add(..))")
    public void pointdemo() {

    }

    // 在add 方法之前执行
    //@Before 注解表示作为前置通知
    // 有多个增强类对同一个方法进行增强，设置增强优先级
    // 在增强类上面添加注解@Order (数字类型，数字类型值越小优先级越高) 从0 开始

    @Before(value = "pointdemo()")
    public void personBefore() {
        System.out.println("Person Before......");
    }
}
